#ifndef BRUNNEN_H_
#define BRUNNEN_H_

#include "RotationsKoerper.h"
#include <osg/MatrixTransform>
#include <osg/Geode>
#include <osg/PolygonMode>
#include <osg/Texture2D>
#include <osgDB/ReadFile>
#include <iostream>

using namespace std;

class Brunnen{
private:

	Rotationskoerper*			koerper;
	Rotationskoerper*			saeule;
	Rotationskoerper*			spitze;

	ref_ptr<Geode>				modelKoerper;
	ref_ptr<Geode>				modelSaeule;
	ref_ptr<Geode>				modelSpitze;

	ref_ptr<MatrixTransform>	flaecheOben;
	ref_ptr<MatrixTransform>	flaecheMitte;
	ref_ptr<MatrixTransform>	flaecheUnten;
	ref_ptr<MatrixTransform>	transformSaeule;
	ref_ptr<MatrixTransform>	transformSpitze;

	ref_ptr<MatrixTransform>	brunnen;

	ref_ptr<PolygonMode>		polygonMode;

	void erstellen();
	void bauen(const string* path, int start);
	void transformieren();
	void zusammenBauen();

public:
	Brunnen(const string* path, int start);
	
	ref_ptr<MatrixTransform> get();

	~Brunnen();

};

#endif
